package it.dk.model;

import java.util.ArrayList;
import java.util.Observable;

/**
 * Classe concreta per la gestione degli alert per le collisioni
 * tra Barrel e WindowLeftBorder
 */
public class AlertCollisionBarrelLeftBorder extends Observable {

	private ArrayList<Integer> object;

	/**
	 * Costruttore della classe
	 * 
	 * @param size dimensione con cui instanziare object
	 */
	public AlertCollisionBarrelLeftBorder(int size) {
		object = new ArrayList<Integer>(size);
		for(int i =0;i<size;i++)
			object.add(-1);
	}
	
	/**
	 * Ritorna il vettore delle collisioni di barrel, dove l'indice
	 * rappresenta il barile e il dato indice di Platform con cui e'
	 * avvenuta la collisione altrimenti contiene -1
	 * 
	 * @return vettore delle collisioni
	 */
	public ArrayList<Integer> getCollision() {
		return object;
	}
	
	/**
	 * Cambia lo stato della collisione e notifica il cambio di stato a tutti
	 * gli observer
	 * 
	 * @param object array di collisioni
	 */
	public void setCollision(ArrayList<Integer> object) {
		for (int i = 0; i < object.size(); i++) {
			if (object.get(i) != this.object.get(i)) {
				this.object = new ArrayList<Integer>(object);
				setChanged();
			}
		}
		notifyObservers();
	}
}
